﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.LightSwitch;
using System.Text.RegularExpressions;

namespace LightSwitchApplication
{
    public partial class HorasProgramadasDetalles
    {

        partial void HoraFin_Validate(EntityValidationResultsBuilder results)
        {
            // results.AddPropertyError("<Mensaje de error>");
            try
            {

                if (!esHoraValida(this.HoraFin))
                {
                    results.AddPropertyError("La hora fin no tiene el formato de ingreso adecuado (HH:MM).");
                }
                else
                {
                    String horaIni = this.HoraInicio;
                    String horaFin = this.HoraFin;
                    DateTime fechaIni = DateTime.Parse(this.Fecha.Date.ToString("dd/MM/yyy") + " " + horaIni);
                    DateTime fechaFin = DateTime.Parse(this.Fecha.Date.ToString("dd/MM/yyy") + " " + horaFin);

                    if (fechaIni >= fechaFin) {
                        results.AddPropertyError("Los horarios no son válidos.");
                    }

                }
            }
            catch (Exception ex)
            { }
        }

        public static bool esHoraValida(string hora)
        {

            Regex r = new Regex(@"([0-1][0-9]|2[0-3]):[0-5][0-9]");
            Match m = r.Match(hora);
            return m.Success;
        }

        partial void HoraInicio_Validate(EntityValidationResultsBuilder results)
        {
            // results.AddPropertyError("<Mensaje de error>");
            try
            {
                if (!esHoraValida(this.HoraInicio))
                {
                    results.AddPropertyError("La hora inicio no tiene el formato de ingreso adecuado (HH:MM).");
                }
                else
                {
                    String horaIni = this.HoraInicio;
                    String horaFin = this.HoraFin;
                    DateTime fechaIni = DateTime.Parse(this.Fecha.Date.ToString("dd/MM/yyy") + " " + horaIni);
                    DateTime fechaFin = DateTime.Parse(this.Fecha.Date.ToString("dd/MM/yyy") + " " + horaFin);

                    if (fechaIni >= fechaFin)
                    {
                        results.AddPropertyError("Los horarios no son válidos.");
                    }

                }
            }
            catch (Exception ex)
            { }
        }

        partial void HorasProgramadasDetalles_Created()
        {
            this.HoraInicio = "17:00";
        }
    }
}
